package org.lemon.cla.dto.request;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.lemon.cla.enums.ClubApplicationStatusEnum;

import java.time.LocalDateTime;

@Data
@Schema(description = "社团申请模糊查询请求对象")
public class ClubApplicationSearchRequest {

    @Schema(description = "申请人用户ID (精确匹配)", example = "1")
    private Long userId;

    @Schema(description = "申请社团ID (精确匹配)", example = "1")
    private Long clubId;

    @Schema(description = "申请理由关键词 (模糊查询)", example = "学习")
    private String reason;

    @Schema(description = "申请状态", example = "待审核", allowableValues = {"待审核", "已批准", "已拒绝"})
    private ClubApplicationStatusEnum status;

    @Schema(description = "申请时间起始点", example = "2024-01-01T00:00:00")
    private LocalDateTime applicationTimeStart;

    @Schema(description = "申请时间结束点", example = "2024-12-31T23:59:59")
    private LocalDateTime applicationTimeEnd;

    @Schema(description = "审核时间起始点", example = "2024-01-01T00:00:00")
    private LocalDateTime reviewTimeStart;

    @Schema(description = "审核时间结束点", example = "2024-12-31T23:59:59")
    private LocalDateTime reviewTimeEnd;

    @Schema(description = "审核人ID (精确匹配)", example = "101")
    private Long reviewerId;
}